package com.study.zookeeper.case1;

import java.lang.annotation.Inherited;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

/**
 * hashmap中根据键的hash值来存储
 * hash值计算方法：hash值：机器码前十六位不变，后十六位为    前十六位与后十六位异或的值
 *      return (key == null) ? 0 : (h = key.hashCode()) ^ (h >>> 16);
 *   缺点：不同的键可能有相同的hash值
 * hashmap的键允许为null
 */
public class Test {
    public static void main(String[] args) {
        Test test = new Test();
        test.test01();
    }
    public void test01() {
        HashMap<Integer,Integer> map = new HashMap<>();
        map.put(null,1);
        map.put(0,1);

        for (Map.Entry<Integer,Integer> value :map.entrySet()){
            System.out.println(value.getKey()+":"+value.getValue());
        }
    }


    public void test02() {
        //与运算&      3和-3      00000000 00000000 00000000 00000011     11111111 11111111 11111111 11111101
        System.out.println(3&(-3>>>1));
        System.out.println(-3>>>1);

        System.out.println();
    }
}
